Computing applications depend upon the availability of processing resources for speed and efficiency. To this end, computing architectures such as the “virtual machine” design, developed by International Business Machines Corporation, share common processing resources among multiple processes. Such an architecture may conventionally rely upon a single computing machine having one or more physical controllers, or central processing units (CPU's). The CPU's may execute software configured to simulate multiple virtual processors.
Such multiprocessor environments support the conceptual practice of logical partitioning. Partitioning provides a programmed architecture suited for sharing computing assets. A partition may logically comprise a portion of a machine's CPU's, memory and other resources. As such, an administrator may allocate the same resources to more than one partition. Each partition may additionally host an operating system, in addition to multiple virtual processors. In this manner, each partition operates largely as if it is a separate computer.
To further increase performance, shared processor pools are often used in conjunction with logical partitions. These shared pools comprise a collection of designated processors accessible to a group of partitions. A logical partition assigned to a shared processor pool may be designated either capped or uncapped.
A capped partition cannot use more processing capacity from the pool than its predetermined limit, or allocation. This limit applies even if CPU's in the pool are idle. Capping thus ensures that a particular logical partition will not exceed its allocated usage, which is desirable in some circumstances.
An uncapped partition may utilize spare processing capability beyond its allocation, provided that it does not execute its tasks on physical processors outside its assigned processor pool. For instance, uncapped partitions can borrow CPU resources from other shared processor partitions that are not using all of their allocated CPU resources. Uncapped partitions thus allow unused CPU resources to be used by other partitions who need it, where they previously would have been idle and wasted.
While use of uncapped partition features present certain advantages to users, the reporting of that use can be a source of confusion. The automatic, transparent nature of uncapped partitions presents challenges to designers for reporting benefits realized by uncapped partitions in an understandable way. For instance, uncapped CPU utilizations can go over 100%, e.g., up to 1000%. Conventional tools for measuring the time it takes to complete a computer task, or response time, do not determine what the response time would have been had no CPU resource been borrowed.
Not knowing what the response times would be without the borrowed resource (and use of the uncapped partition feature) can lead to future sizing and capacity complications. For example, a system administrator may be unaware that the dedicated capacity for particular partition is becoming inadequate for a partition experiencing increased workload. That partition may instead accomplish its disproportionately large workload by continuing to borrow more resources from other partitions. Eventually, excessive borrowing may drain the resource pool for other partitions and tasks, while slowing and otherwise burdening the entire system. For example, even if the workload in one partition does not increase, but the workload of one or more partitions grow to the point of utilizing all of their CPU resources, the response times in the uncapped partition will suffer due to not being able to borrow CPU resources any more. This scenario can also lead to unanswerable questions regarding the variability of response times, even though the amount of work being done on an uncapped partition is consistent due to varying amounts of borrowed resources.
Without adequate warning, the administrator may fail to acquire or reconfigure system resources in time to prevent efficiency and other processing problems. There is consequently a need for an improved manner of reporting performance data in computing systems having uncapped processing capabilities.